package com.ruiyi.mapper;

import com.ruiyi.domain.Account;
import com.ruiyi.dto.AccountDto;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface AccountMapper {

    //登录
    Account selectAccountByLogin(AccountDto accountDto);

    //判断账号是否存在
    @Select("select count(0) from account where username = #{username}")
    int selectUserNameIsExist(String username);

    //分页查询所有账号信息
    @Select("select id,username,pwd,img_url as imgUrl,create_time as createTime,update_time as updateTime,role,status from account")
    List<Account> selectAccountsByPage();

    //修改登录状态
    @Update("update account set status = #{status} where id = #{id}")
    int updateAccountStatus(Integer status,Long id);

    //添加账号（只有超级管理员才有此操作权限）
    int insertAccount(String username);

    //删除账号（只有超级管理员才有此操作权限）
    @Delete("delete from account where id = #{id}")
    int deleteAccountById(Long id);

    //重置密码
    @Update("update account set pwd = 'c2f365c379ea6da2c2e42675fae561ac',update_time = now() where id = #{id}")
    int updateAccount(Long id);

    //修改密码（超级管理员和普通管理员都可以进行修改密码）
    @Update("update account set pwd = #{newPwd} where id = #{id}")
    int updateAccountPwd(String newPwd,String id);

    //查询修改密码之前的id对应的的密码（查出修改之前的密码的原因：想让修改之后的密码，和修改之前的密码不一样）
    @Select("select pwd from account where id = #{id}")
    String selectPwdById(String id);

    //修改头像
    @Update("update account set img_url = #{imgUrl} where id = #{id}")
    int updateAccountImgUrl(String imgUrl,Long id);

}
